// 接口 interface  定义创建一个什么样的对象
// 语法 interface 接口名 { }
interface Iperson{
  id:number,
  name:string,
  readonly age:number, // readonly 只读属性
  sex:string,
  msg?:string, //? 代表可以忽略的属性
  run():void  //void 可以是任意类型
  eat(x:string,y:number):number //eat的返回值是number类型
}
// 用自己写的接口 来约束创建的对象
var myperson:Iperson={
  age:12,
  id:123,
  name:"苏妲己",
  sex:"sdfsd",
  run:function(){
    return 99
  },
  eat:function(x:string,y:number){
    return 99
  }
}
// 
myperson.eat("你好",90)
myperson.name="貂蝉";
console.log(myperson.age)
// 只读属性 不能赋值
// myperson.age=88;


// ts 的函数改动
// ?参数   代表非必传参数  
//  非必传函数  设计到函数的最后参数
function keat(x:string="sd",y?:string|boolean,z?:number):string|number{

  return "你好"
}
console.log(keat("df"))

